<?php
	require_once PATH_OBJECT.'dataObject.php';
	
class dataObject_refExterne extends dataObject
{   

	/* @desc    Identifiant de la référence externe
     * @var     int
     */
    public $_IDENTIFIANT_REFEXT  = 0;
    
	
	/* @desc    type de la référence externe
     * @var     char(5)
     */
    public $_TYPE_REFEXT  = '';
    
	
	/* @desc    valeur de la référence externe
     * @var     varchar(30)
     */
    public $_VALEUR_REFEXT  = '';
    
	
	/* @desc    Identifiant personne de la référence externe
     * @var     int
     */
    public $_IDENTIFIANT_PERSONNE  = 0;
    
	
	/* @desc    Identifiant rôle de la référence externe
     * @var     int
     */
    public $_IDENTIFIANT_ROLE  = 0;
    
	
	/* @desc    Identifiant contrat associé à la référence externe
     * @var     int
     */
    public $_IDENTIFIANT_CONTRAT  = 0;

    
    
    
  public function __construct( $iId=0 )
    {
       parent::__construct();

       if ( $iId != 0 )
       {
            $sQuery = "SELECT   *   /*+ dataObject_refExterne::__construct */  
                       FROM referenceexterne 
            		   WHERE Identifiant_refext  = ".$iId;
            
            $aRows =  self::$_oConnexion->query($sQuery);
	  		$aRow = $aRows[0];

			$this->_IDENTIFIANT_REFEXT		= $iId;
			$this->_TYPE_REFEXT 			= $aRow["Type_refext"];
			$this->_VALEUR_REFEXT 			= $aRow["Valeur_refext"];
			$this->_IDENTIFIANT_PERSONNE 	= $aRow["Identifiant_personne"];
			$this->_IDENTIFIANT_ROLE 		= $aRow["Identifiant_role"];
			$this->_IDENTIFIANT_CONTRAT 	= $aRow["Identifiant_contrat"];		
       }
    }
    /**
     * récupere la table referenceexterne selon le(s) criter(s) précisés ou pas 
	 */
    function refExterne_select( $sCritere = null )
    {
        $aRow = false;
    	$sQuery = "SELECT *    
                   FROM referenceexterne 
            	   WHERE Valeur_refext="."'". 
            	   $sCritere."'";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
    //Liste des reference externes de l'intervenant
 function refExterne_getListRefextIntervenant( $idPersonne )
    {
        $aRow = false;
    	$sQuery = "SELECT *    
                   FROM referenceexterne 
            	   WHERE Identifiant_personne = '".$idPersonne."'";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
    //liste des refences externes
  function refExterne_getListRefext($sCritere1,$sCritere2)
    {
    	$sQuery = "SELECT distinct Nom_personne, Prenom_personne,
    				Date_naissance_personne, Lieu_naissance_personne,
    				Numero_contrat, ref.Identifiant_contrat , ref.Identifiant_personne  
                   FROM referenceexterne ref
                   INNER JOIN personne p ON ref.Identifiant_personne = p.Identifiant_personne
                   LEFT JOIN contrat c ON ref.Identifiant_contrat = c.Identifiant_contrat
            	   WHERE Type_refext ='".$sCritere2."' 
            	   AND Valeur_refext ='".$sCritere1."' ";

        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
    //liste des référence externes selon l'identifiant du contrat
 function refExterne_getListRefextIdContrat($sCritere)
    {
        $aRow = false;
    	$sQuery = "SELECT *    
                   FROM referenceexterne 
            	   WHERE Identifiant_contrat="."'".$sCritere."'"
    	;
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
  //identifiant contrat d'un reference externe
  function refExterne_getNumContratRefext( $sCritere = null )
    {
        $aRow = false;
    	$sQuery = "SELECT Identifiant_contrat    
                   FROM referenceexterne 
            	   WHERE Valeur_refext="."'". 
            	   $sCritere."'";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow[0]['Identifiant_contrat'];
    }
 //identifiant personne d'un reference externe
  function refExterne_getIdPersonneRefext($valeur_ref,$type_ref)
    {
        $aRow = false;
    	$sQuery = "SELECT Identifiant_personne    
                   FROM referenceexterne 
            	   WHERE Valeur_refext="."'".$valeur_ref."'".
            	   "AND Type_refext="."'".$type_ref."'";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow[0]['Identifiant_personne'];
    }
 
    //recupere le type de reference
	function refExterne_getTypeRefext()
    {
        $aRow = false;
    	$sQuery = "SELECT DISTINCT Type_refext    
                   FROM referenceexterne"
    				;
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    ////////////////////////////////////
    
	public function refExterne_getList()
    {
        $aRow = false;
    	$sCritere = " ";
        $aRow =  $this->refExterne_select ($sCritere);
        return $aRow;
    }
    
    
	
public function refExterne_insert()
    {
    	$bId = false;
    	$sQuery = "INSERT INTO referenceexterne (
    			Type_refext ,
				Valeur_refext ,
				Identifiant_personne ,
				Identifiant_role ,
				Identifiant_contrat 
    			) values (
			'$this->_TYPE_REFEXT' ,
			'$this->_VALEUR_REFEXT' ,
			$this->_IDENTIFIANT_PERSONNE ,
			$this->_IDENTIFIANT_ROLE ,
			$this->_IDENTIFIANT_CONTRAT 
    			)";
    	
        	$bId = self::$_oConnexion->execute($sQuery);
    	return $bId;
    }
    
    public function refExterne_update()
    {
    	
    	$sQuery = "UPDATE referenceexterne SET 
    		Type_refext = '$this->_TYPE_REFEXT' ,
			Valeur_refext  = '$this->_VALEUR_REFEXT' ,
			Identifiant_personne = $this->_IDENTIFIANT_PERSONNE ,
			Identifiant_role = $this->_IDENTIFIANT_ROLE ,
			Identifiant_contrat = $this->_IDENTIFIANT_CONTRAT
			WHERE Identifiant_refext  	= ".$this->_IDENTIFIANT_REFEXT ;
    	
    	return self::$_oConnexion->execute($sQuery);
    }
    
function refexterne_search($sType, $sValue)
    {
    	$sQuery = "SELECT distinct Identifiant_refext  
                   FROM referenceexterne 
            	   WHERE Type_refext = '".$sType."' 
            	   AND Valeur_refext = '".$sValue."'";
        $aRow =  self::$_oConnexion->query($sQuery);
        
        return $aRow;
    }
}
?>